home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib03.dsk
/
LOAN REDUCTION ANALYSIS.bas
< prev
next >
Wrap
BASIC Source File
|
2023-02-26
|
2KB
|
68 lines
1000 REM ---------------------
1001 REM PGM GENERATES PAYMENT
1002 REM SCHEDULE FOR DIRECT
1003 REM REDUCTION LOAN WITH
1004 REM PRIN VAL VS. INTEREST
1005 :
1006 REM BY LARRY ABRAMS
1007 REM ARIES SOFTWARE
1008 :
1009 REM APPLESOFT / 7.20.80
1010 REM ---------------------
1011 :
2000 REM PGM INITIALIZATION
2001 ONERR GOTO 8001
2002 FLAG = 0
2003 :
3000 REM MENU / INPUT SECTION
3001 HOME : VTAB 5
3002 PRINT "1. MAX BORROW AMOUNT"; TAB( 25);: IF FLAG THEN PRINT A(1): GOTO 3004
3003 INPUT A(1)
3004 PRINT "2. CHANGE IN AMOUNT"; TAB( 25);: IF FLAG THEN PRINT A(2): GOTO 3006
3005 INPUT A(2)
3006 PRINT "3. MAX INTEREST RATE"; TAB( 25);: IF FLAG THEN PRINT A(3): GOTO 3008
3007 INPUT A(3)
3008 PRINT "4. CHANGE IN INT RATE"; TAB( 25);: IF FLAG THEN PRINT A(4): GOTO 3010
3009 INPUT A(4)
3010 PRINT "5. LOAN TERM (MONTHS)"; TAB( 25);: IF FLAG THEN PRINT A(5): GOTO 3012
3011 INPUT A(5):FLAG = 1
3012 PRINT : INVERSE : PRINT " TYPE 'END' TO END ": NORMAL : VTAB 18: INPUT "ANY CHANGES? ";Y$
3013 IF LEFT$(Y$,1) = "N" THEN 6001
3014 IF Y$ = "END" THEN END
3015 INPUT "WHICH ONE? ";W: PRINT "CHANGE PART ";W;" TO ";: INPUT A(W): GOTO 3001
3016 :
4000 REM PAYMENT CALCULATION
4001 I = J/1200
4002 PMT = (K *I)/(1 -(1 +I) ^( -A(5)))
4003 RETURN
4004 :
5000 REM PRINTUSING SUBROUTINE
5001 P$ = STR$( INT((P +.005) *100))
5002 IF LEN(P$) <3 THEN P$ = LEFT$("000",(3 - LEN(P$))) +P$
5003 P$ = LEFT$(P$,( LEN(P$) -2)) +"." + RIGHT$(P$,2)
5004 P$ = RIGHT$(" " +P$,PL)
5005 RETURN
5006 :
6000 REM OUTPUT HEADING SECTION
6001 HOME : HTAB 13: INVERSE : PRINT " TERM: ";A(5);" MONTHS ": NORMAL
6002 VTAB 2: PRINT "PRCNT";
6003 FOR K = A(1) -4 *A(2) TO A(1) STEP A(2):P$ = STR$( INT(K)):PL = 7: GOSUB 5004: PRINT P$;: NEXT K
6004 FOR DASH = 0 TO 39: PRINT "-";: NEXT DASH
6005 :
7000 REM MAIN PROGRAM
7001 J = A(3)
7002 P = J:PL = 5: GOSUB 5001: PRINT P$;
7003 FOR K = A(1) -4 *A(2) TO A(1) STEP A(2)
7004 GOSUB 4001
7005 P = PMT:PL = 7: GOSUB 5001: PRINT P$;
7006 NEXT K
7007 J = J -A(4)
7008 IF PEEK(37) <22 AND J >0 THEN 7002
7009 VTAB 24: INVERSE : PRINT " ANY KEY FOR MENU ";: NORMAL
7010 IF PEEK( -16384) <128 THEN 7010
7011 GOTO 3001
7012 :
8000 REM ERROR TRAP SUBROUTINE
8001 IF PEEK(222) = 255 THEN END
8002 HOME : VTAB 5: INVERSE : PRINT "CHECK APPLESOFT MANUAL PG 136 FOR ERR": NORMAL
8003 PRINT "ERROR IS NUMBER "; PEEK(222): PRINT "LOCATED IN LINE "; PEEK(218) + PEEK(219) *256: END